【按键精灵】N秒内找图函数封装

您所在的位置:网站首页 按键精灵 autoit 【按键精灵】N秒内找图函数封装

【按键精灵】N秒内找图函数封装

2024-01-04 23:01| 来源: 网络整理| 查看: 265

按键精灵提供的找图是即时找图,在网络延迟、加载缓慢等情况下,提高脚本的机动性是非常有必要的。

为了实现简单的N秒内找图,需要用另一个线程计算延时时间,参考下方流程图。

 首先,要定义全局变量"hid"和"超时时间",然后定义超时检测的线程

DimEnv hid1, 超时时间 Sub 超时检测 Delay 超时时间 超时时间 = 0 //为什么这样设置?看下去 End Sub

接着开始执行N秒内找图

Function 找图(区域, 图片路径, 相似度, 查询前延时, 查询后延时, 超时设定) //超时设定:Array(N, ms) 是否超时设定? // 0:不检查超时(找到为止) // 1:ms毫秒后超时 //变量定义 Dim inx, iny, enx, eny, imgPath, res //变量赋值 res = Array(-1, -1) If 超时设定(0) > 0 Then 超时时间 = 超时设定(1) //给检测超时定义一个时间 End If //设置搜索的区域 If 区域(0) = -1 Then //全屏,参数是Array(-1, ~, ~, ~) inx = 0 iny = 0 enx = WIDTH eny = HEIGHT Else //使用参数的区域 inx = 区域(0) iny = 区域(1) enx = 区域(2) eny = 区域(3) End If Delay 查询前延时 //线程检查超时 hid = BeginThread(超时检测) //启动并记录线程id While 超时时间 > 0 and res(0) < 0 //超时时间>0是在超时检测线程中出现的数值变化 //res是得到的结果,如果找到了,就不用等超时 FindPic inx, iny, enx, eny, 图片路径, 相似度, res(0), res(1) Wend Delay 查询后延时 //线程停止(无论有没有结果),目的是连续使用不会发生错误 StopThread(hid) //结果返回 找图 = res End Function

调用方法如下

//全屏范围下10秒内找到附件中的tgt.bmp图形,相似度0.8,查找前延时300ms,查找后延时200ms ans1 = 找图(Array(-1, 0, 0, 0), "Attachment:\tgt.bmp", 0.8, 300, 200, Array(1, 10 * 1000)) //指定范围找到C:\o.bmp图形,相似度0.5 ans2 = 找图(Array(x1, y1, x2, y2), "C:\o.bmp", 0.5, 0, 0, Array(0, 0))

 截止目前,已经可以弹性地找图并得到结果了。如果是设定弹性地搜索并点击图形,可以多设置一个函数,判断找图是否有结果,有则点击即可。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3